Micron Document
`:top
In `F33f`_`[computer science`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Computer_science]`_`f, a `!concern`! is any aspect in `F33f`_`[software`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Software]`_`f that can be defined separately from other aspects and has a significant level of importance in the context of the use of the software; such as in a `F33f`_`[computer program`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Computer_program]`_`f. A concern can be as general as the details of `F33f`_`[database`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Database]`_`f interaction or as specific as performing a primitive calculation, depending on the level of conversation between developers and the program being discussed. `F33f`_`[IBM`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=IBM]`_`f uses the term `*concern space`* to describe the sectioning of conceptual information.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]

>>Contents

• `F0af`_`[Overview`#overview]`_`f
• `F0af`_`[See also`#see-also]`_`f
• `F0af`_`[References`#references]`_`f
• `F0af`_`[External links`#external-links]`_`f

-─

>>Overview

Usually the code can be separated into logical sections, each addressing separate concerns, and so it hides the need for a given section to know particular information addressed by a different section. This leads to a `F33f`_`[modular`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Modularity_(programming)]`_`f program. `F33f`_`[Edsger W. Dijkstra`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Edsger_W._Dijkstra]`_`f coined the term "`F33f`_`[separation of concerns`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Separation_of_concerns]`_`f"`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f] to describe the mentality behind this modularization, which allows the programmer to reduce the complexity of the system being `F33f`_`[designed`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Designed]`_`f. Two different concerns that intermingle in the same section of code are called "`F33f`_`[highly coupled`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Coupling_(computer_science)]`_`f". Sometimes the chosen module divisions do not allow for one concern to be completely separated from another, resulting in `F33f`_`[cross-cutting concerns`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Cross-cutting_concern]`_`f.`:cite-ref-3[`F5bf`_`[3`#cite-note-3]`_`f] The various `F33f`_`[programming paradigms`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Programming_paradigm]`_`f address the issue of `F33f`_`[cross-cutting concerns`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Cross-cutting_concern]`_`f to different degrees. `F33f`_`[Data logging`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Logging_(software)]`_`f is a common cross-cutting concern, being used in many other parts of the program other than the particular module(s) that actually log the data. Since changes to the logging code can affect other sections, it could introduce `F33f`_`[bugs`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Computer_bug]`_`f in the operation of the program.

Paradigms that specifically address the issue of concern separation:

• `F33f`_`[Object-oriented programming`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Object-oriented_programming]`_`f, describes concerns as objects
• `F33f`_`[Functional programming`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Functional_programming]`_`f, describing concerns as functions
• `F33f`_`[Aspect-oriented software development`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Aspect-oriented_software_development]`_`f, treating concerns and their interaction as constructs of their standing

>>See also

• `F33f`_`[Cross-cutting concern`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Cross-cutting_concern]`_`f
• `F33f`_`[Separation of concerns`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Separation_of_concerns]`_`f
• `F33f`_`[Issue (computers)`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Issue_(computers)]`_`f, a unit of work to accomplish an improvement in a data system

>>References

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f Concern Spaces at IBM Archived 2008-01-22 at the `F33f`_`[Wayback Machine`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Wayback_Machine]`_`f
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f `:citerefdijkstra1982`a`F33f`_`[Dijkstra, Edsger W.`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Edsger_W._Dijkstra]`_`f (1982), "On the role of scientific thought", in Dijkstra, Edsger W. (ed.), `*Selected writings on Computing: A Personal Perspective`*, New York, NY, USA: Springer-Verlag New York, Inc., pp. 60–66, `F33f`_`[ISBN`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=ISBN_(identifier)]`_`f 0-387-90652-5
`:cite-note-3`!3.`! `F0af`_`[↑`#cite-ref-3]`_`f Mendhekar, Anurag, Gregor Kiczales, and John Lamping. "RG: A Case-Study For Aspect-Oriented Programming" Archived 2007-09-08 at the `F33f`_`[Wayback Machine`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Wayback_Machine]`_`f Xerox Palo Alto Research Center. Feb 1997.

>>External links

• Concerns in Rails, by DHH, the Rails creator

`c`F0af`_`[↑ Back to top`#top]`_`f`a